package CallbackVersion2;

/**
 * 这个是小王
 * 实现了一个回调接口Callback，相当于背景A
 * Created by ycq on 2018/10/18.
 */
public class question  {

    /**
     * 小李对象的引用
     * 相当于背景二
     */
   // private Li li;

   // public Wang(Li li){
   //     this.li=li;
  //  }
            Li li=new Li();
    public void askQuesttion(final String question){
        //这里用一个线程就是异步
        new Thread(new Runnable() {
            @Override
            public void run() {
               // /**
               //  * 小王调用小李中的方法，在这里注册回调接口
               //  * 这就相当于A类调用B类的方法C
              //   */
              //  li.executeMessage(Wang.this,question);

                li.executeMessage(new Callback() {
                    @Override
                    public void solve(String result) {
                        System.out.println("小李告诉小王的答案是"+result);
                    }
                }, question);
            }
        }).start();

        //问题提问者问完问题挂掉电话就去干其他事情了，逛街去了
        play();
    }

    private void play(){
        System.out.println("我要逛街去了");
    }

//    /**
//     * 这个是小李知道答案时要调用的函数告诉小王，也就是回调函数
//     * sovle 解决
//     * @param result 结果
//     */
//    @Override
//    public void solve(String result) {
//
//    }
}
